'use strict';

// 云函数入口函数
exports.main = async (event, context) => {
  // 获取openid
  const { userInfo } = context
  
  // 开发环境或测试环境，返回模拟的openid
  const isDevEnv = process.env.NODE_ENV === 'development' || 
                   event.isTestEnv || 
                   !userInfo || 
                   !userInfo.openId;
  
  if (isDevEnv) {
    console.log('开发/测试环境或无法获取真实openid，使用模拟的openid');
    // 生成一个稳定的测试openid，如果有userId则基于userId生成，保证同一用户有相同的测试openid
    const testUserId = event.userId || 'test_user';
    const testOpenid = 'test_openid_' + testUserId + '_' + Date.now().toString().substring(5);
    
    return {
      code: 0,
      message: '开发环境模拟获取成功',
      openid: testOpenid
    }
  }
  
  // 生产环境，返回真实openid
  if (!userInfo || !userInfo.openId) {
    return {
      code: -1,
      message: '未能获取到用户openid'
    }
  }
  
  return {
    code: 0,
    message: '获取成功',
    openid: userInfo.openId
  }
} 